﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.OMM.Configuration.HealthMonitor
{
    /// <summary>
    /// Health monitor configuration
    /// </summary>
    public class HealthMonitorConfiguration
    {
        public HealthMonitorConfiguration()
        {
            _mSMQHealthMonitorQueue = new Sinacor.OMM.Configuration.Repository.RepositoryConfiguration();
        }
        private int _timeToRefreshMonitorSeconds;
        private OMM.Configuration.Repository.RepositoryConfiguration _mSMQHealthMonitorQueue;
        private int _timeToRetryConnectionSeconds;
        private string _snapshotLogPath;
        private string _snapshotLogFile;
        private int _tcpServerPort;
        private string _tcpServerHostName;
        private string _healthStatusMonitorServerLogPath;

        /// <summary>
        /// Time to refresh monitor in seconds
        /// </summary>
        public int TimeToRefreshMonitorSeconds
        {
            get { return _timeToRefreshMonitorSeconds; }
            set { _timeToRefreshMonitorSeconds = value; }
        }

        /// <summary>
        /// MSMQ health monitor Queue
        /// </summary>
        public OMM.Configuration.Repository.RepositoryConfiguration MSMQHealthMonitorQueue
        {
            get { return _mSMQHealthMonitorQueue; }
            set { _mSMQHealthMonitorQueue = value; }
        }

        /// <summary>
        /// Time to retry connection in seconds
        /// </summary>
        public int TimeToRetryConnectionSeconds
        {
            get { return _timeToRetryConnectionSeconds; }
            set { _timeToRetryConnectionSeconds = value; }
        }

        /// <summary>
        /// Snapshot log path
        /// </summary>
        public string SnapshotLogPath
        {
            get { return _snapshotLogPath; }
            set { _snapshotLogPath = value; }
        }

        /// <summary>
        /// Snapshot log file
        /// </summary>
        public string SnapshotLogFile
        {
            get { return _snapshotLogFile; }
            set { _snapshotLogFile = value; }
        }

        /// <summary>
        /// Tcp server port
        /// </summary>
        public int TcpServerPort
        {
            get { return _tcpServerPort; }
            set { _tcpServerPort = value; }
        }

        /// <summary>
        /// Tcp server host name
        /// </summary>
        public string TcpServerHostName
        {
            get { return _tcpServerHostName; }
            set { _tcpServerHostName = value; }
        }

        /// <summary>
        /// Health status monitor server log path
        /// </summary>
        public string HealthStatusMonitorServerLogPath
        {
            get { return _healthStatusMonitorServerLogPath; }
            set { _healthStatusMonitorServerLogPath = value; }
        }
       
    }
}
